A computer has firmware installed therein. Firmware provides an interface between hardware and a higher-level program such as an operating system (OS), a device driver, or an application. Firmware can be classified into two groups: device firmware specializing in controlling peripheral devices, and system firmware (also called “platform firmware”) responsible for operations of the entire system.
System firmware is generally stored in a firmware read-only memory (ROM) mounted on the motherboard. A basic input output system (BIOS) is system firmware which has been installed in many computer systems. The BIOS carries out power-on self-test (POST) and password processing after the computer is turned on and before the OS starts loading, and also provides services for allowing higher-level programs to access hardware.
With recent advancement of hardware, however, it has become difficult for the BIOS to support such advanced hardware. The unified extensible firmware interface (UEFI) forum has developed a UEFI specification as new system firmware that replaces with the conventional, legacy BIOS. The UEFI firmware has adopted a mechanism for emulating the legacy BIOS to maintain backward compatibility. Through the past several years, hardware and software have been developed stepwise from those compatible with the legacy BIOS to those compatible with the UEFI firmware.
In a system having the UEFI firmware installed therein, a UEFI-compatible OS, which operates in a UEFI native mode, and a UEFI-incompatible OS, which operates in a legacy BIOS compatibility mode, may both operate. At present, most personal computers (PCs) record global variables (GVs) in the non-volatile memory which stores the UEFI firmware. A vendor may write GVs into the non-volatile memory by using a GV identifier, VendorGuid. An OS or an application is allowed to rewrite the GVs.